Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create 2020 roadmap 🛣️ #77

Merged
merged 1 commit into from
Apr 8, 2020

Conversation

bobcatfish
Copy link
Contributor

@bobcatfish bobcatfish commented Feb 14, 2020

I have put together a roadmap for 2020, which attempts to represent the
most requested of the features and issues that we've seen so far. I did
this by:

I also added a section on Tekton's mission: this is the mission that
we've been using at Google when talking about Tekton - so this is a
great chance for anyone who is viewing Tekton differently to mention
their mission and vision so we can tweak it. Having more clarity around
what everyone is hoping accomplish with Tekton will make it easier to
make decisions around features, etc.

PTAL:

And everyone else of course!!!!

Roadmaps for individual projects:

@tekton-robot tekton-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Feb 14, 2020
Copy link
Member

@vdemeester vdemeester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to add cli, dashboard and operator roadmap docs in here too
/cc @chmouel @danielhelfand @nikhil-thomas @mnuttall @a-roberts @afrittoli

@@ -0,0 +1,148 @@
# Tekton Mission and Roadmap

This doc describes Tekton's mission and the 2020 roadmap primarily
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc should only be on Tekton's mission and main roadmap (aka as "what we want our components" to lead to) and have a ROADMAP document for the each project on their own.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question is then, should the ROADMAP for the other project be here or on their own porject ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah kk! as long as we link from here maybe that's the way to go. i suppose on tekton.dev we can (hopefully) bring it all together!


Tekton's mission:

Be the industry-standard, cloud-native CI/CD platform components and ecosystem.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines 61 to 63
1. Beta for the remaining components
1. Beta for [Tekton Triggers](#triggers)
1. GA for both Tekton Pipelines and Tekton Triggers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be less specific on the beta on the tekton level. I would see something more like

We target a beta release for the core component earlier this year, leading to a full GA (1.0) release of a defined set of components

^^ we still need to discuss what we want to do for this, but my feeling is, as the project grows, we may want to have the main components released together and maybe share the same version number (easier to manage).

In a Tekton GA, I wanna see pipeline, triggers, cli and most likely the dashboard ; but in addition to that, I feel we should also target a versionned catalog that has a well defined process (validation, support, …)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can get all the projects to release together, I'd like to weigh the pros and cons, I'm not 100% convinced - perhaps what I can put here can be more general, about making some decisions around this?

I do think it makes sense to be explicit about a beta release of Triggers tho for example.

Comment on lines 65 to 68
As the project matures, we also require:

1. A website that provides a good landing page for users (tekton.dev)
1. Solid, high quality onboarding and documentation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be an item on its own, tekton.dev and documentation

for [Catalog](#catalog) success
- [Alternative Task Implementations](https://github.com/tektoncd/pipeline/issues/215)
- [Local Execution](https://github.com/tektoncd/pipeline/issues/235)
- Testing and debugging frameworks
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah! maybe I need to write up my thoughts here a bit more. I really like how projects like OPA come with their own built in support for testing (https://www.openpolicyagent.org/docs/latest/policy-testing/) and as @imjasonh and I hinted at super briefly in that russian doll talk, we could potentially use the entrypoint binary to expose some cool debugging support (e.g. letting users step through steps)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh yeah also tektoncd/pipeline#1289

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

now we've also got tektoncd/pipeline#2069

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bobcatfish

@nikhil-thomas and I would be working on it. 😸

Comment on lines 102 to 143
#### Task Interfaces and PipelineResources

In alpha Tekton Pipelines, [`PipelineResources`](https://github.com/tektoncd/pipeline/issues/1673)
were the interface between `Tasks` in a `Pipeline`: they were used for sharing typed
data and variables between `Tasks`. This is being revisited and the feature has been
deconstructed into:

* `workspaces` - A way for a `Task` to declare data it needs and provides without
needing to know about the underlying mechanism used
* `Task results` (aka "output params") - A way for a `Task` to provide values as outputs
which can be provided to downstream `Tasks`

After adding these features we will once again reconsider the design of `PipelineResources`
and decide what additional features, if any, we need.

We will also need to decide how to continue to release and maintain the code that
is used to build the images used by the existing `PipelineResources`:
https://github.com/tektoncd/pipeline/tree/master/cmd.

### SCM support

SCM support in 2019 was handled by
[the PullRequest Resource](https://github.com/tektoncd/pipeline/blob/master/docs/resources.md#pull-request-resource).
However [we are revisting PipelineResources](#task-interfaces-and-pipelineresources),
and likely this `PipelineResource` will become one or more `Tasks` in
[the catalog](https://github.com/tektoncd/catalog) instead. Once that happens,
we will need to make decisions about how to release and maintain the
supporting code.

* [GitHub App support](https://github.com/tektoncd/triggers/issues/189)
* Support for more SCM providers

### Results

One of the benefits of [defining specifications around CI/CD](#mission-and-vision)
is that we can start to create tools around inspecting what is moving through our
Pipelienes. In 2019 we started some design work around a result storage system for
Tekton, and we want to make progress on this in 2020:

* Design reporting to results store: https://github.com/tektoncd/pipeline/issues/454
* Snapshoting data for history + repeatability: https://github.com/tektoncd/pipeline/issues/279
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be on a pipeline roadmap file 👼

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick thought: I've been thinking of "results" as a new, totally separate project. e.g. i dont think using tekton pipelines should require using tekton results, kinda like tekton triggers. what do you think @vdemeester ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah 🙃 then it can be in the main "tekton" roadmap for now, and we'll update as we go 😝

In 2020 we would like to add missing features and then push for
[Triggers to be Beta and later GA](#beta-and-ga):

We are targetting improving the experience for both end users and operators:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional integration with knative maybe ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain a bit more here? I'm still of the opinion that our best bet is to be as generic as possible

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hence "optional" in my comment 😛 An example would be : using a knative service to expose the EventListener instead of a standard K8S service. I should probably have written "optional integration with knative/serving" maybe 😝

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that could be under improved support for many EventListeners?

Copy link
Member

@iancoffey iancoffey Feb 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Im unclear of the value in exposing the listener via knative service rather than corev1.Service, and am curious about the improvement it would provide. I do love me some knative serving/eventing and use this combo with triggers regularly but feel like im missing the background.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iancoffey not too much, just would like to be able to have a "scale-to-zero" service for event-listener

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I can include this as "scale-to-zero EventListner"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah works for me 😉

@bobcatfish
Copy link
Contributor Author

I left some quick responses @vdemeester but I have a feeling I won't be returning to this this week - it's looking like a crazy one. If you want to make any changes to this directly plz do otherwise I'll make sure to get back to this as soon as I can (maybe next week? 🤞 )

@a-roberts
Copy link
Member

@vdemeester for the Dashboard here's what I'm personally thinking would be useful to have, I'd like to get input from @mnuttall and @AlanGreene before we commit to anything in particular

  1. Observability (which Trigger resulted in which PIpelineRun or TaskRun)
  2. Currency (latest Pipeline and Trigger versions)
  3. Performance through pagination and sorting (thanks to @afrittoli's dogfooding cluster we know we need this)
  4. Visualisations (@AlanGreene has some excellent work in this area already)
  5. Platforms (e.g. known to work on various clouds)
  6. Improved test story, perhaps with Selenium - something that exercises our functionality against different versions (a colleague at IBM has been making good progress on this)
  7. Staying on top of security issues and having a documented procedure (ideally this should be across the Tekton space)

@mnuttall
Copy link

@vdemeester Re @a-roberts' comments above on dashboard - we can't promise but Adam's list is very reasonable set of goals. Hopefully we'll make good progress on that list.


* For end users:
* [Pluggable core interceptors](https://github.com/tektoncd/triggers/issues/271)
* [Increased expression support in TriggerBindings](https://github.com/tektoncd/triggers/issues/271)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link is incorrect; it has the same link as the previous item. I think that it's supposed to link to issue 367: tektoncd/triggers#367

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whoops, thanks for being thorough @ncskier ! :D

include.

Features we don't have or aren't yet 100% satisfied with for "feature complete"
Tekton:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other ideas:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the first, I agree but I know this is a somewhat contentious point!! I'm going to include it b/c between the 2 of us thats 2 people for it XD, maybe I'll include a caveat about deciding if we want to include looping

i think the second is covered by "Alternative Task Implementations" ?

bobcatfish added a commit to bobcatfish/catalog that referenced this pull request Mar 24, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
bobcatfish added a commit to bobcatfish/catalog that referenced this pull request Mar 24, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
bobcatfish added a commit to bobcatfish/triggers that referenced this pull request Mar 24, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
bobcatfish added a commit to bobcatfish/triggers that referenced this pull request Mar 24, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
bobcatfish added a commit to bobcatfish/pipeline that referenced this pull request Mar 24, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
bobcatfish added a commit to bobcatfish/community that referenced this pull request Mar 24, 2020
I have put together a roadmap for 2020, which attempts to represent the
most requested of the features and issues that we've seen so far. I did
this by:

* [Reviewing the 2019 roadmap](https://docs.google.com/document/d/1zClmMJZU63kEDedjxTI99MCK-mXqm-Ym7PBfjMG5tQE/edit)
* Looking at the oldest and most commented on issues in Tekton Pipelines
  and Tekton Triggers

I also added a section on Tekton's mission: this is the mission that
we've been using at Google when talking about Tekton - so this is a
great chance for anyone who is viewing Tekton differently to mention
their mission and vision so we can tweak it. Having more clarity around
what everyone is hoping accomplish with Tekton will make it easier to
make decisions around features, etc.

Roadmaps for individual projects:
* Pipelines: tektoncd/pipeline#2275
* Triggers: tektoncd/triggers#498
* Catalog: tektoncd/catalog#236
* Dashabord: TBD, initial thoughts in tektoncd#77 (comment)
* CLI: TBD
@tekton-robot tekton-robot removed the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Mar 24, 2020
@tekton-robot tekton-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Mar 24, 2020
@bobcatfish
Copy link
Contributor Author

Okay I finally came back and tried to reply to everything and move roadmaps for each project into their repos:

Roadmaps for individual projects:

PTAL @vdemeester @afrittoli

tekton-robot pushed a commit to tektoncd/triggers that referenced this pull request Mar 27, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
Copy link
Member

@vdemeester vdemeester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two nits, otherwise looking good !

roadmap.md Outdated
[does not include all Tekton Pipeline components](https://docs.google.com/document/d/1H8I2Rk4kLdQaR4mV0A71Qbk-1FxXFrmvisEAjLKT6H0/edit#heading=h.t0sc4hdrr5yq),
we will work toward:

1. Beta and GA for all Tekton Projects
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we say all or the core component (and listing thoses: pipeline, triggers, cli, dashboard, ?)
An example is the new hub project, might not follow the exact same pattern (or any newly added project)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kk sgtm!

roadmap.md Outdated
Comment on lines 73 to 81
### Results

One of the benefits of [defining specifications around CI/CD](#mission-and-vision)
is that we can start to create tools around inspecting what is moving through our
Pipelienes. In 2019 we started some design work around a result storage system for
Tekton, and we want to make progress on this in 2020:

* Design reporting to results store: https://github.com/tektoncd/pipeline/issues/454
* Snapshoting data for history + repeatability: https://github.com/tektoncd/pipeline/issues/279
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this pipeline specific ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah yeah that's true, I'll remove this

@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: vdemeester

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 1, 2020
bobcatfish added a commit to bobcatfish/catalog that referenced this pull request Apr 6, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
I have put together a roadmap for 2020, which attempts to represent the
most requested of the features and issues that we've seen so far. I did
this by:

* [Reviewing the 2019 roadmap](https://docs.google.com/document/d/1zClmMJZU63kEDedjxTI99MCK-mXqm-Ym7PBfjMG5tQE/edit)
* Looking at the oldest and most commented on issues in Tekton Pipelines
  and Tekton Triggers

I also added a section on Tekton's mission: this is the mission that
we've been using at Google when talking about Tekton - so this is a
great chance for anyone who is viewing Tekton differently to mention
their mission and vision so we can tweak it. Having more clarity around
what everyone is hoping accomplish with Tekton will make it easier to
make decisions around features, etc.

Roadmaps for individual projects:
* Pipelines: tektoncd/pipeline#2275
* Triggers: tektoncd/triggers#498
* Catalog: tektoncd/catalog#236
* Dashabord: TBD, initial thoughts in tektoncd#77 (comment)
* CLI: TBD
tekton-robot pushed a commit to tektoncd/pipeline that referenced this pull request Apr 6, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
tekton-robot pushed a commit to tektoncd/catalog that referenced this pull request Apr 7, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
vdemeester pushed a commit to vdemeester/tektoncd-catalog that referenced this pull request Apr 7, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
tekton-robot pushed a commit to tektoncd/catalog that referenced this pull request Apr 7, 2020
In tektoncd/community#77 we started on a roadmap
for 2020 for all of Tekton but folks pointed out it makes more sense to
let each project's own roadmap live in the repo with them.
@vdemeester
Copy link
Member

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Apr 8, 2020
@tekton-robot tekton-robot merged commit 560b1a2 into tektoncd:master Apr 8, 2020
@imjasonh
Copy link
Member

imjasonh commented Apr 8, 2020

/lgtm 🎉

1 similar comment
@imjasonh
Copy link
Member

imjasonh commented Apr 8, 2020

/lgtm 🎉

@bobcatfish
Copy link
Contributor Author

Thanks all!!! :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cla: yes lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.